#' Open PSLM Dashboard
#'
#' @return
#' @export
#'
#'@import shiny
#'@import shinythemes
#' @examples
implement_dashboard = function(){
shinyApp(
ui = navbarPage("PSLM 2014-15 Dashboard",
theme = shinytheme("spacelab"),
tabPanel("Plot", tab1(data_input = data_input())),
navbarMenu("More",
tabPanel("Summary Statistics", tab2(data_input = data_input())),
tabPanel("Table", "Table tab contents..."))
),
server = function(input, output, session) {
####################### TAB 1 #######################
#### Setting Sidebar Select Inputs ####
observeEvent(input$data_type,{
updateSelectInput(session, 'gen_query', choices = PSLMcerp::type_pull(input$data_type, "Type"))})
observeEvent(input$gen_query,{
updateSelectInput(session, 'req_info', choices = PSLMcerp::type_pull(input$gen_query, "Full"))})
#### Main Plot ####
df = eventReactive(input$req_info, {
filter_chooser(data=data_chooser(input$data_type), prov = TRUE, dist = FALSE, region = FALSE, info_parser(input$req_info))
})
output$plotter = renderHighchart({
t = typeof(df()[[info_parser(input$req_info)]])
if(t == "character"){funky_plot_chr(df(), info_parser(input$req_info))}
else{funky_plot_dbl(df(), info_parser(input$req_info),
zero_omit = input$select_zero)}
})
####################### TAB 2 #######################
#### Setting Sidebar Select Inputs ####
observeEvent(input$data_type_t2,{
updateSelectInput(session, 'gen_query_t2', choices = PSLMcerp::type_pull(input$data_type_t2, "Type"))})
observeEvent(input$gen_query_t2,{
updateSelectInput(session, 'req_info_t2', choices = PSLMcerp::type_pull(input$gen_query_t2, "Full"))})
#### Main Table ####
df_t2 = eventReactive(input$req_info_t2, {
filter_chooser(data=data_chooser(input$data_type_t2), prov = TRUE, dist = FALSE, region = FALSE, info_parser(input$req_info_t2))
})
#### Summary Statistics ####
output$table_sum = renderTable({summary_maker(df_t2(), info_parser(input$req_info_t2), zero_omit = input$select_zero_t2)})
output$download_sum <- downloadHandler(
filename = function() {
paste(input$data_type_t2, "_", info_parser(input$req_info_t2), "_",
input$req_info_t2, "_", "summary", ".csv", sep = "")},
content = function(file) {
write.csv(summary_maker(df_t2(), info_parser(input$req_info_t2)),
file, row.names = FALSE)})
#### Raw Data ####
output$download_raw <- downloadHandler(
filename = function() {
paste(input$data_type_t2, "_", info_parser(input$req_info_t2), "_",
input$req_info_t2, "_", "raw", ".csv", sep = "")},
content = function(file) {
write.csv(df_t2(), file, row.names = FALSE)})
}
)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.